/**
*这个做成独立的模块来控制动画，
控制一组对话框整体出现,消失
 */

package kgame5.kgui.kcomp {
	import kgame5.kutil.*;

	import com.greensock.TweenLite;

	import flash.display.*;

	public class SmartDboxs{
	static var DUR:Number=0.3;//面板运动的时间
	//_____________________Property______________________________
	private var iCurDboxID:int=-1;
	private var mc_dboxs:MovieClip;//里面的元素是mc_dbox0,mc_dbox1...组成
	
	private var 
		//v方向运动的时候的边界
		OpenY:Number,
		CloseY:Number,
		//h方向运动的时候的边界
		ComeX:Number,
		GoX:Number;
	
	private var count:int;//dboxs的数量
	
	//_____________________Method______________________________
	public function SmartDboxs(p_mc_dboxs:MovieClip,p_count:int,p_OpenY:Number,p_CloseY:Number,p_ComeX:Number,p_GoX:Number){
		mc_dboxs=p_mc_dboxs;
		
		count=p_count;
		
		OpenY=p_OpenY;
		CloseY=p_CloseY;
		ComeX=p_ComeX;
		GoX=p_GoX;
		
		//--对集群整体mc_dbxs的初始化,声明变量
		mc_dboxs.x=0;
		mc_dboxs.y=CloseY;
	}
	
	//取得当前盒子的id
	public function getCurDboxID():int{
		return iCurDboxID;
	}
	//打开全部面板,运动的时候要先open后switch
	public function openPane(){
		//T.p("openPane");
		movePane(OpenY);
		
		//--这个很重要，否则要有混乱,开始的时候把所有都放在最右边
		for(var i:int=0;i<count;i++){
			var mc_dbox:MovieClip=mc_dboxs ["mc_dbox_" + i];
			if(mc_dbox!=null){
				mc_dbox.x=ComeX;
			}
		}
	}
	//关闭全部面板
	public function closePane(){
		movePane(CloseY);  
	}
	
	//这个函数最好不要对外部暴露
	public function movePane(p_aimY:Number){
		//T.p("movePane",p_aimY);
		//Tween2DX.StartMoveY(mc_dboxs,p_aimY, DUR);
		TweenLite.to(mc_dboxs,DUR,{y:p_aimY});
	} 
	
	//直接把对话框组放到指定位置
	public function placePane(aimY:Number){
		mc_dboxs.y=aimY;
	}
	//----------------切换对话框----------------
	//在dbxs里发出命令切换对话框，使用方法是在SwitchDbx之前就createDbx_x(),设置好内部参数和初始位置
	public function switchDboxs (preID : int, nextID : int){
		T.p ("switchDbx:" + preID + "   " + nextID);
		var mc_preDbox : MovieClip= mc_dboxs ["mc_dbox_" + preID];
		
		var mc_nextDbox : MovieClip= mc_dboxs ["mc_dbox_" + nextID];;
		
		if (preID != - 1){//如果第一个不是-1,则新面板放在最右面
			//上一个飞走
			//Tween2DX.StartMoveX(mc_preDbox,GoX,DUR);
			TweenLite.to(mc_preDbox,DUR,{x:GoX});
			
			//下一个出现 
			mc_nextDbox.x = ComeX;
			//Tween2DX.StartMoveX(mc_nextDbox,0,DUR);
			TweenLite.to(mc_nextDbox,DUR,{x:0});
		}else{//如果第一个是-1,表示后一个是第一次出现，就直接出现后一个在目标位置即可
			mc_nextDbox.x=0;
			//mc_nextDbox.y=0;
		}
		
		iCurDboxID=nextID;
	}
	
	
}//end of class
}